#!/usr/bin/env node

const circle = require('./06-export-object')

const log = console.log

const radius = 5
// 动态导入 chalk 模块
import('chalk').then(chalk => {
  // 打印导入模块的变量，文字用绿色
  
  log(chalk.default.green(`Diameter: ${circle.diameter(radius)}`))
  log(chalk.default.green(`Area: ${circle.area(radius)}`))
  log(chalk.default.green(`Circumference: ${circle.circumference(radius)}`))
  console.log(module)
}).catch(error => {
  console.error('Error importing chalk:', error)
});


    



// 在任务 1 (03-export-function.js) 中，我们导出了一个工厂函数 circle，它返回一个包含 area 和 circumference 方法的对象。这种方式允许创建多个具有不同半径的圆对象。
// 在任务 2 (04-export-object.js) 中，我们定义了一个 Circle 类，它具有三个公开的 getter 属性方法来计算直径、面积和周长。这是一个面向对象的实现，其中每个圆都是一个 Circle 类的实例。
// 在任务 3 (05-export-object.js) 中，我们定义了一个对象字面量 circle，它包含三个方法来计算圆的直径、面积和周长。这种方式直接导出了一个包含所有功能的对象，不需要实例化。
// 在任务 4 (06-export-object.js) 中，我们直接在 module.exports 对象上添加了三个属性，每个属性都是一个函数。这种方法与任务 3 类似，但是它更直接地导出了函数，而不是包含函数的对象。
// 每个任务展示了不同的模块导出方式，包括函数、类、对象字面量和直接在 module.exports 上添加属性。这些差异反映了不同的设计选择和编码风格，适用于不同的场景和需求